home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 June / PCWorld_2007-06_cd.bin / system / sandra / san1135.exe / {app} / examples / Oracle Schema.sql < prev    next >
Text File  |  2006-12-24  |  5KB  |  201 lines

  1.  
  2. --
  3. -- Oracle 8i/9i/10g Schema for Sandra Report (Unicode)
  4. --
  5. -- Schema is assumed to have been created already.
  6. -- No extents included, please add as required.
  7. --
  8. -- Copyright (c) 1995-2007, SiSoftware Ltd.
  9. -- All Rights Reserved.
  10.  
  11. --
  12. -- Kill all tables
  13. --
  14.  
  15. DROP TABLE TItem;
  16.  
  17. DROP TABLE TControl;
  18.  
  19. DROP TABLE TItemGroup;
  20.  
  21. DROP TABLE TDevice;
  22.  
  23. DROP TABLE TClass;
  24.  
  25. DROP TABLE TModule;
  26.  
  27. DROP TABLE TReport;
  28.  
  29. DROP TABLE TIDCount;
  30.  
  31. DROP VIEW VItemNGroup;
  32.  
  33. --
  34. -- Kill all sequences
  35. --
  36.  
  37. DROP SEQUENCE seqTItem;
  38.  
  39. DROP SEQUENCE seqTControl;
  40.  
  41. DROP SEQUENCE seqTItemGroup;
  42.  
  43. DROP SEQUENCE seqTDevice;
  44.  
  45. DROP SEQUENCE seqTClass;
  46.  
  47. DROP SEQUENCE seqTModule;
  48.  
  49. DROP SEQUENCE seqTReport;
  50.  
  51. --
  52. -- Create new sequences
  53. --
  54.  
  55. CREATE SEQUENCE seqTItem;
  56.  
  57. CREATE SEQUENCE seqTControl;
  58.  
  59. CREATE SEQUENCE seqTItemGroup;
  60.  
  61. CREATE SEQUENCE seqTDevice;
  62.  
  63. CREATE SEQUENCE seqTClass;
  64.  
  65. CREATE SEQUENCE seqTModule;
  66.  
  67. CREATE SEQUENCE seqTReport;
  68.  
  69. --
  70. -- Create new tables
  71. --
  72.  
  73. CREATE TABLE TReport (
  74.     ID            INTEGER PRIMARY KEY,
  75.     ProgVersion        INTEGER NOT NULL,
  76.     BuildVersion        INTEGER NOT NULL,
  77.     Completed        NUMBER(1) NOT NULL
  78. );
  79.  
  80. CREATE TABLE TModule (
  81.     ID            INTEGER PRIMARY KEY,
  82.     ReportID        INTEGER REFERENCES TReport(ID),
  83.     Capabilities        INTEGER NOT NULL,
  84.     Name            NVARCHAR2(255) NOT NULL,
  85.     TypeID            INTEGER NOT NULL,
  86.     HelpID            INTEGER NOT NULL
  87. );
  88.  
  89. CREATE TABLE TClass (
  90.     ID            INTEGER PRIMARY KEY,
  91.     ModuleID        INTEGER REFERENCES TModule(ID),
  92.     Name            NVARCHAR2(255) NOT NULL,
  93.     IconID            INTEGER NOT NULL,
  94.     HelpID            INTEGER NOT NULL
  95. );
  96.  
  97. CREATE TABLE TDevice (
  98.     ID            INTEGER PRIMARY KEY,
  99.     ModuleID        INTEGER REFERENCES TModule(ID),
  100.     ClassID            INTEGER REFERENCES TClass(ID),
  101.     Name            NVARCHAR2(255) NOT NULL,
  102.     IconID            INTEGER NOT NULL,
  103.     HelpID            INTEGER NOT NULL
  104. );
  105.  
  106. CREATE TABLE TItemGroup (
  107.     ID            INTEGER PRIMARY KEY,
  108.     ModuleID        INTEGER REFERENCES TModule(ID),
  109.     ClassID            INTEGER REFERENCES TClass(ID),
  110.     DeviceID        INTEGER REFERENCES TDevice(ID),
  111.     Name            NVARCHAR2(255) NOT NULL,
  112.     IconID            INTEGER NOT NULL,
  113.     HelpID            INTEGER NOT NULL
  114. );
  115.  
  116. CREATE TABLE TItem (
  117.     ID            INTEGER PRIMARY KEY,
  118.     ModuleID        INTEGER REFERENCES TModule(ID),
  119.     ClassID            INTEGER REFERENCES TClass(ID),
  120.     DeviceID        INTEGER REFERENCES TDevice(ID),
  121.     GroupID            INTEGER REFERENCES TItemGroup(ID),
  122.     Name            NVARCHAR2(255) NOT NULL,
  123.     DataValue        NVARCHAR2(255),
  124.     IconID            INTEGER NOT NULL,
  125.     TypeID            INTEGER NOT NULL,
  126.     HelpID            INTEGER NOT NULL
  127. );
  128.  
  129. CREATE TABLE TControl (
  130.     ID            INTEGER PRIMARY KEY,
  131.     ModuleID        INTEGER REFERENCES TModule(ID),
  132.     ClassID            INTEGER REFERENCES TClass(ID),
  133.     DeviceID        INTEGER REFERENCES TDevice(ID),
  134.     Name            INTEGER NOT NULL,
  135.     DataValID        INTEGER NOT NULL,
  136.     DataValue        NVARCHAR2(255)
  137. );
  138.  
  139. CREATE TABLE TIDCount (
  140.     TableName        NVARCHAR2(10) PRIMARY KEY,
  141.     CurrentID        INTEGER NOT NULL
  142. );
  143.  
  144. --
  145. -- Set-up keys/indexes
  146. --
  147.  
  148.  
  149. CREATE INDEX ndxModuleParent ON TModule(ReportID);
  150.  
  151. CREATE INDEX ndxModuleType ON TModule(TypeID);
  152.  
  153. CREATE INDEX ndxClassParent ON TClass(ModuleID);
  154.  
  155. CREATE INDEX ndxClassType ON TClass(IconID);
  156.  
  157. CREATE INDEX ndxDeviceParent ON TDevice(ModuleID, ClassID);
  158.  
  159. CREATE INDEX ndxDeviceType ON TDevice(IconID);
  160.  
  161. CREATE INDEX ndxGroupParent ON TItemGroup(ModuleID, ClassID, DeviceID);
  162.  
  163. CREATE INDEX ndxGroupType ON TItemGroup(IconID);
  164.  
  165. CREATE INDEX ndxItemParent ON TItem(ModuleID, ClassID, DeviceID, GroupID);
  166.  
  167. CREATE INDEX ndxItemType ON TItem(IconID);
  168.  
  169. CREATE INDEX ndxControlParent ON TControl(ModuleID, ClassID, DeviceID);
  170.  
  171. CREATE INDEX ndxControlType ON TControl(Name);
  172.  
  173. --
  174. -- Views
  175. --
  176.  
  177. CREATE VIEW VItemNGroup
  178. AS
  179. SELECT
  180. TItemGroup.ID AS TIG_ID, TItemGroup.ModuleID AS TIG_ModuleID, TItemGroup.ClassID AS TIG_ClassID,
  181. TItemGroup.DeviceID AS TIG_DeviceID, TItemGroup.IconID AS TIG_IconID, TItemGroup.HelpID AS TIG_HelpID,
  182. TItemGroup.Name AS TIG_Name, TItem.ID AS TI_ID, TItem.IconID AS TI_IconID, TItem.HelpID AS TI_HelpID,
  183. TItem.Name AS TI_Name, TItem.TypeID, TItem.DataValue
  184. FROM TItemGroup, TItem
  185. WHERE TItem.GroupID=TItemGroup.ID;
  186.  
  187. --
  188. -- Inserts
  189. --
  190.  
  191. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItem', 1);
  192. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TControl', 1);
  193. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItemGroup', 1);
  194. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TDevice', 1);
  195. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TClass', 1);
  196. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TModule', 1);
  197. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TReport', 1);
  198.  
  199.  
  200.  
  201.